home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
tex
/
tools
/
dvi_300b
/
treiber
/
sources
/
treiber.h
< prev
next >
Wrap
Text File
|
1995-11-25
|
7KB
|
123 lines
/*******************************************************************
*******************************************************************
** Routinen aus Treiber.c (c)'93 m.pristovsek **
** Diese Routinen sind in TREIBER.C und FAST_DVI.S definiert **
*******************************************************************
*******************************************************************/
/*******************************************************************
* DIE Arbeitsroutine im eigentlichen Modul (als Parametercheck!) *
* Diese Routine ist druckerspezifisch *
*******************************************************************
* Die Kurzbeschreibung der Parameter: *
* bitmap - Zeiger auf die Bitmap *
* offset - Offset vom Rand (links bei quer, sonst von oben) *
* weite - Breite der Bitmap in Pixel *
* Die Breite einer Bitmap in Bytes erhält man durch: *
* ((weite+15)/8)&0xFFFFFFFFFEL *
* Die Breite ist immer eine gerade Anzahl von Bytes *
* hoehe - Höhe der Bitmap in Pixel (=Zeilen) *
* h_dpi - Horizontale Auflösung in Dpi *
* v_dpi - vertikale Auflösung in Dpi *
* datei - Handle der Zieldatei (-3<= heißt keine angegeben) *
* flag - Bitflag: *
* flag&1 (Initialisierung nötig) *
* flag&2 (Daten auch Drucken) *
* flag&4 (Seite beenden + Seitenvorschub) *
* flag==7 heißt, Seite komplett drucken *
* Unfertig käme dann: 3, 2, ..., 2, 4 (oder 3, 2, 6) *
* quer - Datei als Landscape ausdrucken *
* option - Ein maximal 16 Byte langer String mit zusätzlichen *
* Optionen in beliegigem Format *
*******************************************************************
* Eine Rückgabe <0 wird als Fehler interpretiert und an DVI zu- *
* rückgegeben *
*******************************************************************
* GROSSE VARIABLEN AUSSERHALB ALLER FUNKTIONEN UND STATISCH *
* DEKLARIEREN, SONST GIBT ES U.U. STACKÜBERLAUF! *
*******************************************************************/
short drucke( char *bitmap, long offset, long weite, long hoehe,
long h_dpi, long v_dpi, short datei, short flag,
short quer, char *option );
/*==================================================================*
" Folgende Routinen sind allgemein zur Eingrenzung des Bereiches, "
" der gedruckt werden soll, interessant "
*==================================================================*/
/*******************************************************************
* Ist diese Zeile Leerzeile? (d.h. sind "offset" Bytes==0?) *
*******************************************************************
* "ptr": Zeiger auf Bitmap "offset": Breite in Bytes *
*******************************************************************/
int ist_leerzeile( char *ptr, long offset );
/* 16.1.93 */
/*******************************************************************
* Sind in den nächsten #next-Zeilen keine Zeichen? D.h. damit kann*
* man z.B den linken Rand bestimmen. *
*******************************************************************
* "ptr": Zeiger auf Bitmap "offset": Breite in Bytes *
* "next": Anzahl zu testender Zeilen *
*******************************************************************/
int ist_next_leer( char *ptr, long offset, long next );
/* 16.1.93 */
/*******************************************************************
* Bitmap zeilenweise um 90 Grad drehen (in DREHE_90) *
*******************************************************************
* Dabei ist "qweite" die Breite der Bitmap *
* und "zweite" die Höhe der (Bitmap+7)/8 *
* ==> "ziel" muß mindestens "zweite"-Bytes groß sein! *
*******************************************************************/
void drehe_90( char *quelle, char *ziel, long qweite, long zweite, long x );
/*******************************************************************
* Bitmap für Nadeln drehen (in BLOCK_BY) *
*******************************************************************
* ende: Breite des Bereiches IN BYTES *
* offset: Weite einer Bitmapzeile *
* modus: Wieviel Bytes pro Zeile (9:1, 24:3, Jet:1-6) *
*******************************************************************/
void block_it( char *dest, char *src, short ende, long offset, short mode );
/* 10.8.93 */
/*******************************************************************
* Versucht Drucker zu Öffnen und die Semaphore 'PRN:' zu bekommen *
* Leider kann man die Datei "U:\dev\prn" nicht verriegeln; deshalb*
* wurde die Semaphore eingeführt. *
*******************************************************************
* Der Rückgabewert ist 1 (Ok) oder 0 (Zu wenig Speicher) *
*******************************************************************/
int open_printer( int handle );
/* 6.2.93 */
/*******************************************************************
* Gibt die "len" Daten ab "blk" an Spooler weiter (umgeht GEMDOS) *
* Gleichzeitig sorgt diese Funktion für das Blinken /-\| ... *
*******************************************************************/
long print_block( long len, char *blk, int fh );
/* 22.1.93 */
/*******************************************************************
* Gibt den String "str" an Spooler weiter (s.o.) *
*******************************************************************/
long print_str( char *str, int fh );
/* 3.9.94 */
/*******************************************************************
* Leert Spoolerspeicher, MUSS vor dem Druckende aufgerufen werden!*
*******************************************************************/
void flush_block( int fh );
/* 23.1.93 */